home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / comm2 / termsorc.lha / Extras / Source / term-source.lha / PhonePanelUI.c < prev    next >
C/C++ Source or Header  |  1995-09-29  |  35KB  |  1,465 lines

  1. /*
  2. **    PhonePanelUI.c
  3. **
  4. **    The phonebook user interface creation routines
  5. **
  6. **    Copyright © 1990-1995 by Olaf `Olsen' Barthel
  7. **        All Rights Reserved
  8. **
  9. **    :ts=4
  10. */
  11.  
  12. #include "termGlobal.h"
  13.  
  14.     // The gadget IDs are in there
  15.  
  16. #include "PhonePanel.h"
  17.  
  18. LayoutHandle * __regargs
  19. CreateEditorHandle(struct Window *Parent,struct List *PhoneList,ULONG Count,struct PhoneNode *Node,BOOL Activate,struct MsgPort *UserPort)
  20. {
  21.     STATIC LONG LabelTable1[] =
  22.     {
  23.         MSG_PHONEBOOK_SETTINGS_SERIAL_TXT,
  24.         MSG_PHONEBOOK_SETTINGS_MODEM_TXT,
  25.         MSG_PHONEBOOK_SETTINGS_SCREEN_TXT,
  26.         MSG_PHONEBOOK_SETTINGS_TERMINAL_TXT,
  27.         MSG_PHONEBOOK_SETTINGS_EMULATION_TXT,
  28.         MSG_PHONEBOOK_SETTINGS_CLIPBOARD_TXT,
  29.         MSG_PHONEBOOK_SETTINGS_CAPTURE_TXT,
  30.         MSG_PHONEBOOK_SETTINGS_COMMANDS_TXT,
  31.         -1
  32.     };
  33.  
  34.     STATIC LONG LabelTable2[] =
  35.     {
  36.         MSG_PHONEBOOK_SETTINGS_MISCELLANEOUS_TXT,
  37.         MSG_PHONEBOOK_SETTINGS_PATHS_TXT,
  38.         MSG_PHONEBOOK_SETTINGS_TRANSFER_TXT,
  39.         MSG_PHONEBOOK_SETTINGS_TRANSLATION_TXT,
  40.         MSG_PHONEBOOK_SETTINGS_FUNCTION_KEYS_TXT,
  41.         MSG_PHONEBOOK_SETTINGS_CURSOR_KEYS_TXT,
  42.         MSG_PHONEBOOK_SETTINGS_FAST_MACROS_TXT,
  43.         MSG_PHONEBOOK_SETTINGS_RATES_TXT,
  44.         -1
  45.     };
  46.  
  47.     LayoutHandle            *Handle;
  48.     BOOL                     IsFirst,IsLast,Disabled,RatesValid;
  49.     WORD                     LabelLen1,LabelLen2;
  50.     struct Configuration    *LocalConfig;
  51.     struct IBox                 Bounds;
  52.     LONG                     i,Len;
  53.  
  54.     if(Node)
  55.     {
  56.         IsFirst            = (Node -> Entry -> Count == -1 || Node -> Entry -> Count == 0);
  57.         IsLast            = (Node -> Entry -> Count == -1 || Node -> Entry -> Count == Count - 1);
  58.         Disabled        = FALSE;
  59.         LocalConfig        = Node -> Entry -> Config;
  60.         RatesValid        = (Node -> Entry -> TimeDateList . mlh_Head -> mln_Succ != NULL && !Node -> Entry -> Header -> NoRates);
  61.     }
  62.     else
  63.     {
  64.         IsFirst            = TRUE;
  65.         IsLast            = TRUE;
  66.         Disabled        = TRUE;
  67.         LocalConfig        = NULL;
  68.         RatesValid        = FALSE;
  69.     }
  70.  
  71.     if(Handle = LT_CreateHandleTags(Parent -> WScreen,
  72.         LH_LocaleHook,&LocaleHook,
  73.     TAG_DONE))
  74.     {
  75.         for(i = LabelLen1 = 0 ; LabelTable1[i] != -1 ; i++)
  76.         {
  77.             Len = LT_LabelChars(Handle,LocaleString(LabelTable1[i]));
  78.  
  79.             if(Len > LabelLen1)
  80.                 LabelLen1 = Len;
  81.         }
  82.  
  83.         for(i = LabelLen2 = 0 ; LabelTable2[i] != -1 ; i++)
  84.         {
  85.             Len = LT_LabelChars(Handle,LocaleString(LabelTable2[i]));
  86.  
  87.             if(Len > LabelLen2)
  88.                 LabelLen2 = Len;
  89.         }
  90.  
  91.         LT_New(Handle,
  92.             LA_Type,    VERTICAL_KIND,
  93.         TAG_DONE);
  94.         {
  95.             LT_New(Handle,
  96.                 LA_Type,    HORIZONTAL_KIND,
  97.             TAG_DONE);
  98.             {
  99.                 LT_New(Handle,
  100.                     LA_Type,        VERTICAL_KIND,
  101.                     LA_LabelID,        MSG_PHONEBOOK_ENTRY_DATA_TXT,
  102.                 TAG_DONE);
  103.                 {
  104.                     LT_New(Handle,
  105.                         LA_Type,        STRING_KIND,
  106.                         LA_LabelID,        MSG_PHONEBOOK_SYSTEM_NAME_TXT,
  107.                         LA_Chars,        30,
  108.                         LA_ID,            GAD_SYSTEM_NAME,
  109.                         GTST_String,    Node ? Node -> Entry -> Header -> Name : (STRPTR)"",
  110.                         GTST_MaxChars,    39,
  111.                         GA_Disabled,    Disabled,
  112.                     TAG_DONE);
  113.  
  114.                     LT_New(Handle,
  115.                         LA_Type,        STRING_KIND,
  116.                         LA_LabelID,        MSG_PHONEBOOK_COMMENT_TXT,
  117.                         LA_ID,            GAD_COMMENT,
  118.                         GTST_String,    Node ? Node -> Entry -> Header -> Comment : (STRPTR)"",
  119.                         GTST_MaxChars,    99,
  120.                         GA_Disabled,    Disabled,
  121.                     TAG_DONE);
  122.  
  123.                     LT_New(Handle,
  124.                         LA_Type,        STRING_KIND,
  125.                         LA_LabelID,        MSG_PHONEBOOK_NUMBERS_TXT,
  126.                         LA_ID,            GAD_NUMBERS,
  127.                         GTST_String,    Node ? Node -> Entry -> Header -> Number : (STRPTR)"",
  128.                         GTST_MaxChars,    99,
  129.                         GA_Disabled,    Disabled,
  130.                     TAG_DONE);
  131.  
  132.                     LT_New(Handle,
  133.                         LA_Type,        CHECKBOX_KIND,
  134.                         LA_LabelID,        MSG_PHONEBOOK_QUICK_MENU_TXT,
  135.                         LA_ID,            GAD_QUICK_MENU,
  136.                         GTCB_Checked,    Node ? Node -> Entry -> Header -> QuickMenu : FALSE,
  137.                         GA_Disabled,    Disabled,
  138.                     TAG_DONE);
  139.  
  140.                     LT_New(Handle,
  141.                         LA_Type,        CHECKBOX_KIND,
  142.                         LA_LabelID,        MSG_PHONEPANEL_AUTO_DIAL_TXT,
  143.                         LA_ID,            GAD_AUTODIAL,
  144.                         GTCB_Checked,    Node ? Node -> Entry -> Header -> AutoDial : FALSE,
  145.                         GA_Disabled,    Disabled,
  146.                     TAG_DONE);
  147.  
  148.                     LT_New(Handle,
  149.                         LA_Type,        XBAR_KIND,
  150.                     TAG_DONE);
  151.  
  152.                     LT_New(Handle,
  153.                         LA_Type,        CHECKBOX_KIND,
  154.                         LA_LabelID,        MSG_HIDE_TXT,
  155.                         LA_ID,            GAD_HIDE_USERNAME_PASSWORD,
  156.                         GTCB_Checked,    TRUE,
  157.                     TAG_DONE);
  158.  
  159.                     LT_New(Handle,
  160.                         LA_Type,        STRING_KIND,
  161.                         LA_LabelID,        MSG_PHONEBOOK_USER_NAME_TXT,
  162.                         LA_ID,            GAD_USER_NAME,
  163.                         GTST_String,    "",
  164.                         GTST_MaxChars,    99,
  165.                         GA_Disabled,    TRUE,
  166.                     TAG_DONE);
  167.  
  168.                     LT_New(Handle,
  169.                         LA_Type,        STRING_KIND,
  170.                         LA_LabelID,        MSG_PHONEBOOK_LOGIN_PASSWORD_TXT,
  171.                         LA_ID,            GAD_USER_PASSWORD,
  172.                         LAST_LastGadget,TRUE,
  173.                         GTST_String,    "",
  174.                         GTST_MaxChars,    99,
  175.                         GA_Disabled,    TRUE,
  176.                     TAG_DONE);
  177.  
  178.                     LT_EndGroup(Handle);
  179.                 }
  180.  
  181.                 LT_New(Handle,
  182.                     LA_Type,        HORIZONTAL_KIND,
  183.                     LA_LabelID,        MSG_PHONEBOOK_SETTINGS_TXT,
  184.                 TAG_DONE);
  185.                 {
  186.                     LT_New(Handle,
  187.                         LA_Type,        VERTICAL_KIND,
  188.                     TAG_DONE);
  189.                     {
  190.                         LT_New(Handle,
  191.                             LA_Type,        HORIZONTAL_KIND,
  192.                         TAG_DONE);
  193.                         {
  194.                             LT_New(Handle,
  195.                                 LA_Type,        CHECKBOX_KIND,
  196.                                 LA_ID,            GAD_SERIAL_STATE,
  197.                                 GTCB_Checked,    LocalConfig ? (LocalConfig -> SerialConfig != NULL) : FALSE,
  198.                                 GA_Disabled,    Disabled,
  199.                             TAG_DONE);
  200.  
  201.                             LT_New(Handle,
  202.                                 LA_Type,        BUTTON_KIND,
  203.                                 LA_Chars,        LabelLen1,
  204.                                 LA_LabelID,        MSG_PHONEBOOK_SETTINGS_SERIAL_TXT,
  205.                                 LA_ID,            GAD_SERIAL_EDIT,
  206.                                 GA_Disabled,    Disabled || (LocalConfig && !LocalConfig -> SerialConfig),
  207.                                 LABT_Smaller,    TRUE,
  208.                             TAG_DONE);
  209.  
  210.                             LT_EndGroup(Handle);
  211.                         }
  212.  
  213.                         LT_New(Handle,
  214.                             LA_Type,        HORIZONTAL_KIND,
  215.                         TAG_DONE);
  216.                         {
  217.                             LT_New(Handle,
  218.                                 LA_Type,        CHECKBOX_KIND,
  219.                                 LA_ID,            GAD_MODEM_STATE,
  220.                                 GTCB_Checked,    LocalConfig ? (LocalConfig -> ModemConfig != NULL) : FALSE,
  221.                                 GA_Disabled,    Disabled,
  222.                             TAG_DONE);
  223.  
  224.                             LT_New(Handle,
  225.                                 LA_Type,        BUTTON_KIND,
  226.                                 LA_Chars,        LabelLen1,
  227.                                 LA_LabelID,        MSG_PHONEBOOK_SETTINGS_MODEM_TXT,
  228.                                 LA_ID,            GAD_MODEM_EDIT,
  229.                                 GA_Disabled,    Disabled || (LocalConfig && !LocalConfig -> ModemConfig),
  230.                                 LABT_Smaller,    TRUE,
  231.                             TAG_DONE);
  232.  
  233.                             LT_EndGroup(Handle);
  234.                         }
  235.  
  236.                         LT_New(Handle,
  237.                             LA_Type,        HORIZONTAL_KIND,
  238.                         TAG_DONE);
  239.                         {
  240.                             LT_New(Handle,
  241.                                 LA_Type,        CHECKBOX_KIND,
  242.                                 LA_ID,            GAD_SCREEN_STATE,
  243.                                 GTCB_Checked,    LocalConfig ? (LocalConfig -> ScreenConfig != NULL) : FALSE,
  244.                                 GA_Disabled,    Disabled,
  245.                             TAG_DONE);
  246.  
  247.                             LT_New(Handle,
  248.                                 LA_Type,        BUTTON_KIND,
  249.                                 LA_Chars,        LabelLen1,
  250.                                 LA_LabelID,        MSG_PHONEBOOK_SETTINGS_SCREEN_TXT,
  251.                                 LA_ID,            GAD_SCREEN_EDIT,
  252.                                 GA_Disabled,    Disabled || (LocalConfig && !LocalConfig -> ScreenConfig),
  253.                                 LABT_Smaller,    TRUE,
  254.                             TAG_DONE);
  255.  
  256.                             LT_EndGroup(Handle);
  257.                         }
  258.  
  259.                         LT_New(Handle,
  260.                             LA_Type,        HORIZONTAL_KIND,
  261.                         TAG_DONE);
  262.                         {
  263.                             LT_New(Handle,
  264.                                 LA_Type,        CHECKBOX_KIND,
  265.                                 LA_ID,            GAD_TERMINAL_STATE,
  266.                                 GTCB_Checked,    LocalConfig ? (LocalConfig -> TerminalConfig != NULL) : FALSE,
  267.                                 GA_Disabled,    Disabled,
  268.                             TAG_DONE);
  269.  
  270.                             LT_New(Handle,
  271.                                 LA_Type,        BUTTON_KIND,
  272.                                 LA_Chars,        LabelLen1,
  273.                                 LA_LabelID,        MSG_PHONEBOOK_SETTINGS_TERMINAL_TXT,
  274.                                 LA_ID,            GAD_TERMINAL_EDIT,
  275.                                 GA_Disabled,    Disabled || (LocalConfig && !LocalConfig -> TerminalConfig),
  276.                                 LABT_Smaller,    TRUE,
  277.                             TAG_DONE);
  278.  
  279.                             LT_EndGroup(Handle);
  280.                         }
  281.  
  282.                         LT_New(Handle,
  283.                             LA_Type,        HORIZONTAL_KIND,
  284.                         TAG_DONE);
  285.                         {
  286.                             LT_New(Handle,
  287.                                 LA_Type,        CHECKBOX_KIND,
  288.                                 LA_ID,            GAD_EMULATION_STATE,
  289.                                 GTCB_Checked,    LocalConfig ? (LocalConfig -> EmulationConfig != NULL) : FALSE,
  290.                                 GA_Disabled,    Disabled,
  291.                             TAG_DONE);
  292.  
  293.                             LT_New(Handle,
  294.                                 LA_Type,        BUTTON_KIND,
  295.                                 LA_Chars,        LabelLen1,
  296.                                 LA_LabelID,        MSG_PHONEBOOK_SETTINGS_EMULATION_TXT,
  297.                                 LA_ID,            GAD_EMULATION_EDIT,
  298.                                 GA_Disabled,    Disabled || (LocalConfig && !LocalConfig -> EmulationConfig),
  299.                                 LABT_Smaller,    TRUE,
  300.                             TAG_DONE);
  301.  
  302.                             LT_EndGroup(Handle);
  303.                         }
  304.  
  305.                         LT_New(Handle,
  306.                             LA_Type,        HORIZONTAL_KIND,
  307.                         TAG_DONE);
  308.                         {
  309.                             LT_New(Handle,
  310.                                 LA_Type,        CHECKBOX_KIND,
  311.                                 LA_ID,            GAD_CLIPBOARD_STATE,
  312.                                 GTCB_Checked,    LocalConfig ? (LocalConfig -> ClipConfig != NULL) : FALSE,
  313.                                 GA_Disabled,    Disabled,
  314.                             TAG_DONE);
  315.  
  316.                             LT_New(Handle,
  317.                                 LA_Type,        BUTTON_KIND,
  318.                                 LA_Chars,        LabelLen1,
  319.                                 LA_LabelID,        MSG_PHONEBOOK_SETTINGS_CLIPBOARD_TXT,
  320.                                 LA_ID,            GAD_CLIPBOARD_EDIT,
  321.                                 GA_Disabled,    Disabled || (LocalConfig && !LocalConfig -> ClipConfig),
  322.                                 LABT_Smaller,    TRUE,
  323.                             TAG_DONE);
  324.  
  325.                             LT_EndGroup(Handle);
  326.                         }
  327.  
  328.                         LT_New(Handle,
  329.                             LA_Type,        HORIZONTAL_KIND,
  330.                         TAG_DONE);
  331.                         {
  332.                             LT_New(Handle,
  333.                                 LA_Type,        CHECKBOX_KIND,
  334.                                 LA_ID,            GAD_CAPTURE_STATE,
  335.                                 GTCB_Checked,    LocalConfig ? (LocalConfig -> CaptureConfig != NULL) : FALSE,
  336.                                 GA_Disabled,    Disabled,
  337.                             TAG_DONE);
  338.  
  339.                             LT_New(Handle,
  340.                                 LA_Type,        BUTTON_KIND,
  341.                                 LA_Chars,        LabelLen1,
  342.                                 LA_LabelID,        MSG_PHONEBOOK_SETTINGS_CAPTURE_TXT,
  343.                                 LA_ID,            GAD_CAPTURE_EDIT,
  344.                                 GA_Disabled,    Disabled || (LocalConfig && !LocalConfig -> CaptureConfig),
  345.                                 LABT_Smaller,    TRUE,
  346.                             TAG_DONE);
  347.  
  348.                             LT_EndGroup(Handle);
  349.                         }
  350.  
  351.                         LT_New(Handle,
  352.                             LA_Type,        HORIZONTAL_KIND,
  353.                         TAG_DONE);
  354.                         {
  355.                             LT_New(Handle,
  356.                                 LA_Type,        CHECKBOX_KIND,
  357.                                 LA_ID,            GAD_COMMAND_STATE,
  358.                                 GTCB_Checked,    LocalConfig ? (LocalConfig -> CommandConfig != NULL) : FALSE,
  359.                                 GA_Disabled,    Disabled,
  360.                             TAG_DONE);
  361.  
  362.                             LT_New(Handle,
  363.                                 LA_Type,        BUTTON_KIND,
  364.                                 LA_Chars,        LabelLen1,
  365.                                 LA_LabelID,        MSG_PHONEBOOK_SETTINGS_COMMANDS_TXT,
  366.                                 LA_ID,            GAD_COMMAND_EDIT,
  367.                                 GA_Disabled,    Disabled || (LocalConfig && !LocalConfig -> CommandConfig),
  368.                                 LABT_Smaller,    TRUE,
  369.                             TAG_DONE);
  370.  
  371.                             LT_EndGroup(Handle);
  372.                         }
  373.  
  374.                         LT_EndGroup(Handle);
  375.                     }
  376.  
  377.                     LT_New(Handle,
  378.                         LA_Type,        VERTICAL_KIND,
  379.                     TAG_DONE);
  380.                     {
  381.                         LT_New(Handle,
  382.                             LA_Type,        HORIZONTAL_KIND,
  383.                         TAG_DONE);
  384.                         {
  385.                             LT_New(Handle,
  386.                                 LA_Type,        CHECKBOX_KIND,
  387.                                 LA_ID,            GAD_MISC_STATE,
  388.                                 GTCB_Checked,    LocalConfig ? (LocalConfig -> MiscConfig != NULL) : FALSE,
  389.                                 GA_Disabled,    Disabled,
  390.                             TAG_DONE);
  391.  
  392.                             LT_New(Handle,
  393.                                 LA_Type,        BUTTON_KIND,
  394.                                 LA_Chars,        LabelLen2,
  395.                                 LA_LabelID,        MSG_PHONEBOOK_SETTINGS_MISCELLANEOUS_TXT,
  396.                                 LA_ID,            GAD_MISC_EDIT,
  397.                                 GA_Disabled,    Disabled || (LocalConfig && !LocalConfig -> MiscConfig),
  398.                                 LABT_Smaller,    TRUE,
  399.                             TAG_DONE);
  400.  
  401.                             LT_EndGroup(Handle);
  402.                         }
  403.  
  404.                         LT_New(Handle,
  405.                             LA_Type,        HORIZONTAL_KIND,
  406.                         TAG_DONE);
  407.                         {
  408.                             LT_New(Handle,
  409.                                 LA_Type,        CHECKBOX_KIND,
  410.                                 LA_ID,            GAD_PATH_STATE,
  411.                                 GTCB_Checked,    LocalConfig ? (LocalConfig -> PathConfig != NULL) : FALSE,
  412.                                 GA_Disabled,    Disabled,
  413.                             TAG_DONE);
  414.  
  415.                             LT_New(Handle,
  416.                                 LA_Type,        BUTTON_KIND,
  417.                                 LA_Chars,        LabelLen2,
  418.                                 LA_LabelID,        MSG_PHONEBOOK_SETTINGS_PATHS_TXT,
  419.                                 LA_ID,            GAD_PATH_EDIT,
  420.                                 GA_Disabled,    Disabled || (LocalConfig && !LocalConfig -> PathConfig),
  421.                                 LABT_Smaller,    TRUE,
  422.                             TAG_DONE);
  423.  
  424.                             LT_EndGroup(Handle);
  425.                         }
  426.  
  427.                         LT_New(Handle,
  428.                             LA_Type,        HORIZONTAL_KIND,
  429.                         TAG_DONE);
  430.                         {
  431.                             LT_New(Handle,
  432.                                 LA_Type,        CHECKBOX_KIND,
  433.                                 LA_ID,            GAD_TRANSFER_STATE,
  434.                                 GTCB_Checked,    LocalConfig ? (LocalConfig -> TransferConfig != NULL) : FALSE,
  435.                                 GA_Disabled,    Disabled,
  436.                             TAG_DONE);
  437.  
  438.                             LT_New(Handle,
  439.                                 LA_Type,        BUTTON_KIND,
  440.                                 LA_Chars,        LabelLen2,
  441.                                 LA_LabelID,        MSG_PHONEBOOK_SETTINGS_TRANSFER_TXT,
  442.                                 LA_ID,            GAD_TRANSFER_EDIT,
  443.                                 GA_Disabled,    Disabled || (LocalConfig && !LocalConfig -> TransferConfig),
  444.                                 LABT_Smaller,    TRUE,
  445.                             TAG_DONE);
  446.  
  447.                             LT_EndGroup(Handle);
  448.                         }
  449.  
  450.                         LT_New(Handle,
  451.                             LA_Type,        HORIZONTAL_KIND,
  452.                         TAG_DONE);
  453.                         {
  454.                             LT_New(Handle,
  455.                                 LA_Type,        CHECKBOX_KIND,
  456.                                 LA_ID,            GAD_TRANSLATION_STATE,
  457.                                 GTCB_Checked,    LocalConfig ? (LocalConfig -> TranslationFileName != NULL) : FALSE,
  458.                                 GA_Disabled,    Disabled,
  459.                             TAG_DONE);
  460.  
  461.                             LT_New(Handle,
  462.                                 LA_Type,        BUTTON_KIND,
  463.                                 LA_Chars,        LabelLen2,
  464.                                 LA_LabelID,        MSG_PHONEBOOK_SETTINGS_TRANSLATION_TXT,
  465.                                 LA_ID,            GAD_TRANSLATION_EDIT,
  466.                                 GA_Disabled,    Disabled || (LocalConfig && !LocalConfig -> TranslationFileName),
  467.                                 LABT_Smaller,    TRUE,
  468.                             TAG_DONE);
  469.  
  470.                             LT_EndGroup(Handle);
  471.                         }
  472.  
  473.                         LT_New(Handle,
  474.                             LA_Type,        HORIZONTAL_KIND,
  475.                         TAG_DONE);
  476.                         {
  477.                             LT_New(Handle,
  478.                                 LA_Type,        CHECKBOX_KIND,
  479.                                 LA_ID,            GAD_MACRO_STATE,
  480.                                 GTCB_Checked,    LocalConfig ? (LocalConfig -> MacroFileName != NULL) : FALSE,
  481.                                 GA_Disabled,    Disabled,
  482.                             TAG_DONE);
  483.  
  484.                             LT_New(Handle,
  485.                                 LA_Type,        BUTTON_KIND,
  486.                                 LA_Chars,        LabelLen2,
  487.                                 LA_LabelID,        MSG_PHONEBOOK_SETTINGS_FUNCTION_KEYS_TXT,
  488.                                 LA_ID,            GAD_MACRO_EDIT,
  489.                                 GA_Disabled,    Disabled || (LocalConfig && !LocalConfig -> MacroFileName),
  490.                                 LABT_Smaller,    TRUE,
  491.                             TAG_DONE);
  492.  
  493.                             LT_EndGroup(Handle);
  494.                         }
  495.  
  496.                         LT_New(Handle,
  497.                             LA_Type,        HORIZONTAL_KIND,
  498.                         TAG_DONE);
  499.                         {
  500.                             LT_New(Handle,
  501.                                 LA_Type,        CHECKBOX_KIND,
  502.                                 LA_ID,            GAD_CURSOR_STATE,
  503.                                 GTCB_Checked,    LocalConfig ? (LocalConfig -> CursorFileName != NULL) : FALSE,
  504.                                 GA_Disabled,    Disabled,
  505.                             TAG_DONE);
  506.  
  507.                             LT_New(Handle,
  508.                                 LA_Type,        BUTTON_KIND,
  509.                                 LA_Chars,        LabelLen2,
  510.                                 LA_LabelID,        MSG_PHONEBOOK_SETTINGS_CURSOR_KEYS_TXT,
  511.                                 LA_ID,            GAD_CURSOR_EDIT,
  512.                                 GA_Disabled,    Disabled || (LocalConfig && !LocalConfig -> CursorFileName),
  513.                                 LABT_Smaller,    TRUE,
  514.                             TAG_DONE);
  515.  
  516.                             LT_EndGroup(Handle);
  517.                         }
  518.  
  519.                         LT_New(Handle,
  520.                             LA_Type,        HORIZONTAL_KIND,
  521.                         TAG_DONE);
  522.                         {
  523.                             LT_New(Handle,
  524.                                 LA_Type,        CHECKBOX_KIND,
  525.                                 LA_ID,            GAD_FASTMACRO_STATE,
  526.                                 GTCB_Checked,    LocalConfig ? (LocalConfig -> FastMacroFileName != NULL) : FALSE,
  527.                                 GA_Disabled,    Disabled,
  528.                             TAG_DONE);
  529.  
  530.                             LT_New(Handle,
  531.                                 LA_Type,        BUTTON_KIND,
  532.                                 LA_Chars,        LabelLen2,
  533.                                 LA_LabelID,        MSG_PHONEBOOK_SETTINGS_FAST_MACROS_TXT,
  534.                                 LA_ID,            GAD_FASTMACRO_EDIT,
  535.                                 GA_Disabled,    Disabled || (LocalConfig && !LocalConfig -> FastMacroFileName),
  536.                                 LABT_Smaller,    TRUE,
  537.                             TAG_DONE);
  538.  
  539.                             LT_EndGroup(Handle);
  540.                         }
  541.  
  542.                         LT_New(Handle,
  543.                             LA_Type,        HORIZONTAL_KIND,
  544.                         TAG_DONE);
  545.                         {
  546.                             LT_New(Handle,
  547.                                 LA_Type,        CHECKBOX_KIND,
  548.                                 LA_ID,            GAD_RATE_STATE,
  549.                                 GTCB_Checked,    RatesValid,
  550.                                 GA_Disabled,    Disabled,
  551.                             TAG_DONE);
  552.  
  553.                             LT_New(Handle,
  554.                                 LA_Type,        BUTTON_KIND,
  555.                                 LA_Chars,        LabelLen2,
  556.                                 LA_LabelID,        MSG_PHONEBOOK_SETTINGS_RATES_TXT,
  557.                                 LA_ID,            GAD_RATE_EDIT,
  558.                                 GA_Disabled,    Disabled || !RatesValid,
  559.                                 LABT_Smaller,    TRUE,
  560.                             TAG_DONE);
  561.  
  562.                             LT_EndGroup(Handle);
  563.                         }
  564.  
  565.                         LT_EndGroup(Handle);
  566.                     }
  567.  
  568.                     LT_EndGroup(Handle);
  569.                 }
  570.  
  571.                 LT_EndGroup(Handle);
  572.             }
  573.  
  574.             LT_New(Handle,
  575.                 LA_Type,        VERTICAL_KIND,
  576.             TAG_DONE);
  577.             {
  578.                 LT_New(Handle,
  579.                     LA_Type,        XBAR_KIND,
  580.                     LAXB_FullSize,    TRUE,
  581.                 TAG_DONE);
  582.  
  583.                 LT_EndGroup(Handle);
  584.             }
  585.  
  586.             LT_New(Handle,
  587.                 LA_Type,        HORIZONTAL_KIND,
  588.                 LAGR_SameSize,    TRUE,
  589.                 LAGR_Spread,    TRUE,
  590.             TAG_DONE);
  591.             {
  592.                 LT_New(Handle,
  593.                     LA_Type,            TAPEDECK_KIND,
  594.                     LATD_ButtonType,    TDBT_PREVIOUS,
  595.                     LATD_Smaller,        TRUE,
  596.                     LA_ID,                GAD_FIRST_ENTRY,
  597.                     GA_Disabled,        Disabled || IsFirst,
  598.                 TAG_DONE);
  599.  
  600.                 LT_New(Handle,
  601.                     LA_Type,            TAPEDECK_KIND,
  602.                     LATD_ButtonType,    TDBT_REWIND,
  603.                     LATD_Smaller,        TRUE,
  604.                     LA_ID,                GAD_PREVIOUS_ENTRY,
  605.                     GA_Disabled,        Disabled || IsFirst,
  606.                 TAG_DONE);
  607.  
  608.                 LT_New(Handle,
  609.                     LA_Type,            TAPEDECK_KIND,
  610.                     LATD_ButtonType,    TDBT_PLAY,
  611.                     LATD_Smaller,        TRUE,
  612.                     LA_ID,                GAD_NEXT_ENTRY,
  613.                     GA_Disabled,        Disabled || IsLast,
  614.                 TAG_DONE);
  615.  
  616.                 LT_New(Handle,
  617.                     LA_Type,            TAPEDECK_KIND,
  618.                     LATD_ButtonType,    TDBT_NEXT,
  619.                     LATD_Smaller,        TRUE,
  620.                     LA_ID,                GAD_LAST_ENTRY,
  621.                     GA_Disabled,        Disabled || IsLast,
  622.                 TAG_DONE);
  623.  
  624.                 LT_New(Handle,
  625.                     LA_Type,            BUTTON_KIND,
  626.                     LA_LabelID,            MSG_GLOBAL_CLOSE_TXT,
  627.                     LABT_EscKey,        TRUE,
  628.                     LABT_ExtraFat,        TRUE,
  629.                     LA_ID,                GAD_CLOSE,
  630.                 TAG_DONE);
  631.  
  632.                 LT_EndGroup(Handle);
  633.             }
  634.  
  635.             LT_EndGroup(Handle);
  636.         }
  637.  
  638.         if(Parent == Window)
  639.         {
  640.             Bounds . Left    = WindowLeft    + Window -> LeftEdge;
  641.             Bounds . Top    = WindowTop        + Window -> TopEdge;
  642.             Bounds . Width    = WindowWidth;
  643.             Bounds . Height    = WindowHeight;
  644.         }
  645.  
  646.         if(LT_Build(Handle,
  647.             LAWN_TitleID,        MSG_PHONEBOOK_EDIT_TXT,
  648.             LAWN_IDCMP,         IDCMP_CLOSEWINDOW,
  649.             LAWN_UserPort,        UserPort,
  650.             LAWN_HelpHook,        &GuideHook,
  651.             WA_DepthGadget,     TRUE,
  652.             WA_DragBar,         TRUE,
  653.             WA_RMBTrap,         TRUE,
  654.             WA_Activate,        Activate,
  655.             WA_CloseGadget,     TRUE,
  656.             WA_SimpleRefresh,    TRUE,
  657.  
  658.             Parent == Window ? LAWN_Bounds : TAG_IGNORE,&Bounds,
  659.             Parent == Window ? TAG_IGNORE : LAWN_Parent,Parent,
  660.         TAG_DONE))
  661.         {
  662.             if(Activate)
  663.             {
  664.                 LT_ShowWindow(Handle,TRUE);
  665.  
  666.                 if(!Disabled)
  667.                     LT_Activate(Handle,GAD_SYSTEM_NAME);
  668.             }
  669.  
  670.             return(Handle);
  671.         }
  672.         else
  673.             LT_DeleteHandle(Handle);
  674.     }
  675.  
  676.     return(NULL);
  677. }
  678.  
  679. LayoutHandle * __regargs
  680. CreateManagerHandle(struct Window *Parent,struct List *PhoneList,ULONG Count,ULONG *Grouper,STRPTR *Labels,struct MsgPort *UserPort,STRPTR WindowTitle)
  681. {
  682.     STATIC LONG LabelTable[] =
  683.     {
  684.         MSG_PHONEBOOK_TAG_ALL_TXT,
  685.         MSG_PHONEBOOK_TOGGLE_ALL_TXT,
  686.         MSG_PHONEBOOK_UNTAG_ALL_TXT,
  687.         MSG_PHONEBOOK_TAG_BY_PATTERN_TXT,
  688.  
  689.         MSG_PHONEBOOK_EDIT_ENTRY_TXT,
  690.         MSG_PHONEBOOK_COPY_ENTRY_TXT,
  691.         MSG_PHONEBOOK_ADD_ENTRY_TXT,
  692.         MSG_PHONEBOOK_MAKE_GROUP_TXT,
  693.  
  694.         MSG_PHONEBOOK_DIAL_TXT,
  695.         MSG_PHONEBOOK_USE_ENTRY_TXT,
  696.         MSG_PHONEBOOK_DELETE_ENTRY_TXT,
  697.         MSG_PHONEBOOK_SPLIT_GROUP_TXT,
  698.  
  699.         -1
  700.     };
  701.  
  702.     LayoutHandle *Handle;
  703.  
  704.     if(Handle = LT_CreateHandleTags(Parent -> WScreen,
  705.         LH_LocaleHook,&LocaleHook,
  706.     TAG_DONE))
  707.     {
  708.         STATIC struct Hook ListViewHook = { {NULL},(HOOKFUNC)PhoneListViewRender };
  709.  
  710.         UWORD        MaxPen;
  711.         LONG        i,Max,Size;
  712.         UBYTE        SmallString[2];
  713.         struct IBox    Bounds;
  714.         LONG        Len,LabelLen;
  715.  
  716.         for(i = LabelLen = 0 ; LabelTable[i] != -1 ; i++)
  717.         {
  718.             Len = LT_LabelChars(Handle,LocaleString(LabelTable[i]));
  719.  
  720.             if(Len > LabelLen)
  721.                 LabelLen = Len;
  722.         }
  723.  
  724.         MaxPen = MAX(Handle -> DrawInfo -> dri_Pens[BLOCKPEN],MAX(Handle -> DrawInfo -> dri_Pens[TEXTPEN],MAX(Handle -> DrawInfo -> dri_Pens[BACKGROUNDPEN],MAX(Handle -> DrawInfo -> dri_Pens[FILLTEXTPEN],MAX(Handle -> DrawInfo -> dri_Pens[FILLPEN],Handle -> DrawInfo -> dri_Pens[HIGHLIGHTTEXTPEN])))));
  725.  
  726.         SmallString[1]    = 0;
  727.         Max                = 0;
  728.  
  729.         for(i = '0' ; i <= '9' ; i++)
  730.         {
  731.             SmallString[0] = i;
  732.  
  733.             if((Size = LT_LabelWidth(Handle,SmallString)) > Max)
  734.                 Max = Size;
  735.         }
  736.  
  737.         ListViewHook . h_Data = (APTR)Max;
  738.  
  739.         LT_New(Handle,
  740.             LA_Type,    VERTICAL_KIND,
  741.         TAG_DONE);
  742.         {
  743.             LT_New(Handle,
  744.                 LA_Type,        HORIZONTAL_KIND,
  745.                 LAGR_NoIndent,    TRUE,
  746.             TAG_DONE);
  747.             {
  748.                 LT_New(Handle,
  749.                     LA_Type,    VERTICAL_KIND,
  750.                 TAG_DONE);
  751.                 {
  752.                     BOOL HasEntries;
  753.                     LONG NumEntries;
  754.                     LONG NumColumns;
  755.  
  756.                     if(PhoneList && PhoneList -> lh_Head -> ln_Succ)
  757.                     {
  758.                         struct Node    *Node;
  759.                         LONG         Len;
  760.  
  761.                         HasEntries = TRUE;
  762.  
  763.                         for(Node = PhoneList -> lh_Head, NumEntries = NumColumns = 0 ; Node -> ln_Succ ; Node = Node -> ln_Succ)
  764.                         {
  765.                             NumEntries++;
  766.  
  767.                             Len = strlen(&Node -> ln_Name[6]);
  768.  
  769.                             if(Len > NumColumns)
  770.                                 NumColumns = Len;
  771.                         }
  772.  
  773.                         if(NumEntries < 6)
  774.                             NumEntries = 6;
  775.                         else
  776.                         {
  777.                             if(NumEntries > 46)
  778.                                 NumEntries = 46;
  779.                         }
  780.  
  781.                         if(NumColumns < 46)
  782.                             NumColumns = 46;
  783.                     }
  784.                     else
  785.                     {
  786.                         HasEntries = FALSE;
  787.                         NumEntries = 6;
  788.                         NumColumns = 46;
  789.                     }
  790.  
  791.                     LT_New(Handle,
  792.                         LA_Type,        CycleType,
  793.                         LACY_TabKey,    TRUE,
  794.                         GTCY_Labels,    Labels,
  795.                         LA_ID,            GAD_GROUPID,
  796.                         LA_ULONG,        Grouper,
  797.                     TAG_DONE);
  798.  
  799.                     LT_New(Handle,
  800.                         LA_Type,        LISTVIEW_KIND,
  801.                         LA_ID,            GAD_NAMELIST,
  802.                         LALV_Columns,    46,
  803.                         LALV_Lines,     6,
  804.                         LALV_CursorKey, TRUE,
  805.                         LALV_ResizeX,    TRUE,
  806.                         LALV_ResizeY,    TRUE,
  807.                         LALV_MaxGrowX,    NumColumns,
  808.                         LALV_MaxGrowY,    NumEntries,
  809.                         LALV_Link,        NIL_LINK,
  810.                         GTLV_CallBack,    &ListViewHook,
  811.                         GTLV_MaxPen,    MaxPen,
  812.                         GTLV_Labels,    PhoneList,
  813.  
  814. //                        Kick30 ? LALV_Link :    TAG_IGNORE,        NIL_LINK,
  815.                         Kick30 ? TAG_IGNORE :    LALV_TextAttr,    ~0,
  816.                         Kick30 ? GA_Disabled :    TAG_IGNORE,        !HasEntries,
  817.                     TAG_DONE);
  818.  
  819.                     LT_New(Handle,
  820.                         LA_Type,        TEXT_KIND,
  821.                         LA_ID,            GAD_COMMENTLINE,
  822.                         GTTX_Border,    TRUE,
  823.                     TAG_DONE);
  824.  
  825.                     LT_New(Handle,
  826.                         LA_Type,        HORIZONTAL_KIND,
  827.                         LAGR_Spread,    TRUE,
  828.                         LAGR_SameSize,    TRUE,
  829.                         LAGR_Spread,    TRUE,
  830.                     TAG_DONE);
  831.                     {
  832.                         LT_New(Handle,
  833.                             LA_Type,            TAPEDECK_KIND,
  834.                             LATD_ButtonType,    TDBT_PREVIOUS,
  835.                             LATD_Smaller,        TRUE,
  836.                             LA_Chars,            LabelLen,
  837.                             LA_ID,                GAD_MOVE_FIRST,
  838.                             GA_Disabled,        TRUE,
  839.                         TAG_DONE);
  840.  
  841.                         LT_New(Handle,
  842.                             LA_Type,            TAPEDECK_KIND,
  843.                             LATD_ButtonType,    TDBT_REWIND,
  844.                             LATD_Smaller,        TRUE,
  845.                             LA_ID,                GAD_MOVE_UP,
  846.                             GA_Disabled,        TRUE,
  847.                         TAG_DONE);
  848.  
  849.                         LT_New(Handle,
  850.                             LA_Type,            TAPEDECK_KIND,
  851.                             LATD_ButtonType,    TDBT_PLAY,
  852.                             LATD_Smaller,        TRUE,
  853.                             LA_ID,                GAD_MOVE_DOWN,
  854.                             GA_Disabled,        TRUE,
  855.                         TAG_DONE);
  856.  
  857.                         LT_New(Handle,
  858.                             LA_Type,            TAPEDECK_KIND,
  859.                             LATD_ButtonType,    TDBT_NEXT,
  860.                             LATD_Smaller,        TRUE,
  861.                             LA_ID,                GAD_MOVE_LAST,
  862.                             GA_Disabled,        TRUE,
  863.                         TAG_DONE);
  864.  
  865.                         LT_EndGroup(Handle);
  866.                     }
  867.  
  868.                     LT_New(Handle,
  869.                         LA_Type,        HORIZONTAL_KIND,
  870.                         LAGR_NoIndent,    TRUE,
  871.                         LAGR_SameSize,    TRUE,
  872.                         LAGR_Spread,    TRUE,
  873.                     TAG_DONE);
  874.                     {
  875.                         LT_New(Handle,
  876.                             LA_Type,        BUTTON_KIND,
  877.                             LA_LabelID,        MSG_PHONEBOOK_TAG_ALL_TXT,
  878.                             LA_ID,            GAD_SELECT_ALL,
  879.                             GA_Disabled,    !NumPhoneEntries || Count == NumPhoneEntries,
  880.                             LA_Chars,        LabelLen,
  881.                         TAG_DONE);
  882.  
  883.                         LT_New(Handle,
  884.                             LA_Type,        BUTTON_KIND,
  885.                             LA_LabelID,        MSG_PHONEBOOK_TOGGLE_ALL_TXT,
  886.                             LA_ID,            GAD_TOGGLE_ALL,
  887.                             GA_Disabled,    TRUE,
  888.                         TAG_DONE);
  889.  
  890.                         LT_New(Handle,
  891.                             LA_Type,        BUTTON_KIND,
  892.                             LA_LabelID,        MSG_PHONEBOOK_UNTAG_ALL_TXT,
  893.                             LA_ID,            GAD_CLEAR_ALL,
  894.                             GA_Disabled,    !Count,
  895.                         TAG_DONE);
  896.  
  897.                         LT_New(Handle,
  898.                             LA_Type,        BUTTON_KIND,
  899.                             LA_LabelID,        MSG_PHONEBOOK_TAG_BY_PATTERN_TXT,
  900.                             LA_ID,            GAD_PATTERN,
  901.                             GA_Disabled,    !NumPhoneEntries,
  902.                         TAG_DONE);
  903.  
  904.                         LT_EndGroup(Handle);
  905.                     }
  906.  
  907.                     LT_New(Handle,
  908.                         LA_Type,        XBAR_KIND,
  909.                     TAG_DONE);
  910.  
  911.                     LT_New(Handle,
  912.                         LA_Type,        HORIZONTAL_KIND,
  913.                         LAGR_NoIndent,    TRUE,
  914.                         LAGR_SameSize,    TRUE,
  915.                         LAGR_Spread,    TRUE,
  916.                     TAG_DONE);
  917.                     {
  918.                         LT_New(Handle,
  919.                             LA_Type,        BUTTON_KIND,
  920.                             LA_LabelID,        MSG_PHONEBOOK_EDIT_ENTRY_TXT,
  921.                             LA_Chars,        LabelLen,
  922.                             LA_ID,            GAD_EDIT,
  923.                             GA_Disabled,    TRUE,
  924.                             LABT_DefaultCorrection,    TRUE,
  925.                         TAG_DONE);
  926.  
  927.                         LT_New(Handle,
  928.                             LA_Type,        BUTTON_KIND,
  929.                             LA_LabelID,        MSG_PHONEBOOK_COPY_ENTRY_TXT,
  930.                             LA_ID,            GAD_COPY,
  931.                             GA_Disabled,    TRUE,
  932.                         TAG_DONE);
  933.  
  934.                         LT_New(Handle,
  935.                             LA_Type,        BUTTON_KIND,
  936.                             LA_LabelID,        MSG_PHONEBOOK_ADD_ENTRY_TXT,
  937.                             LA_ID,            GAD_ADD,
  938.                         TAG_DONE);
  939.  
  940.                         LT_New(Handle,
  941.                             LA_Type,        BUTTON_KIND,
  942.                             LA_LabelID,        MSG_PHONEBOOK_MAKE_GROUP_TXT,
  943.                             LA_ID,            GAD_MAKE_GROUP,
  944.                             GA_Disabled,    !Count,
  945.                         TAG_DONE);
  946.  
  947.                         LT_EndGroup(Handle);
  948.                     }
  949.  
  950.                     LT_New(Handle,
  951.                         LA_Type,        HORIZONTAL_KIND,
  952.                         LAGR_NoIndent,    TRUE,
  953.                         LAGR_SameSize,    TRUE,
  954.                         LAGR_Spread,    TRUE,
  955.                     TAG_DONE);
  956.                     {
  957.                         LT_New(Handle,
  958.                             LA_Type,        BUTTON_KIND,
  959.                             LA_LabelID,        MSG_PHONEBOOK_DIAL_TXT,
  960.                             LA_ID,            GAD_DIAL,
  961.                             GA_Disabled,    !Count || (Online && !Config -> MiscConfig -> ProtectiveMode),
  962.                             LABT_ReturnKey, TRUE,
  963.                             LA_Chars,        LabelLen,
  964.                         TAG_DONE);
  965.  
  966.                         LT_New(Handle,
  967.                             LA_Type,        BUTTON_KIND,
  968.                             LA_LabelID,        MSG_PHONEBOOK_USE_ENTRY_TXT,
  969.                             LA_ID,            GAD_USE,
  970.                             GA_Disabled,    TRUE,
  971.                         TAG_DONE);
  972.  
  973.                         LT_New(Handle,
  974.                             LA_Type,        BUTTON_KIND,
  975.                             LA_LabelID,        MSG_PHONEBOOK_DELETE_ENTRY_TXT,
  976.                             LA_ID,            GAD_DELETE,
  977.                             GA_Disabled,    TRUE,
  978.                         TAG_DONE);
  979.  
  980.                         LT_New(Handle,
  981.                             LA_Type,        BUTTON_KIND,
  982.                             LA_LabelID,        MSG_PHONEBOOK_SPLIT_GROUP_TXT,
  983.                             LA_ID,            GAD_SPLIT_GROUP,
  984.                             GA_Disabled,    *Grouper == 0,
  985.                         TAG_DONE);
  986.  
  987.                         LT_EndGroup(Handle);
  988.                     }
  989.  
  990.                     LT_EndGroup(Handle);
  991.                 }
  992.  
  993.                 LT_New(Handle,
  994.                     LA_Type,        VERTICAL_KIND,
  995.                 TAG_DONE);
  996.                 {
  997.                     LT_New(Handle,
  998.                         LA_Type,    YBAR_KIND,
  999.                     TAG_DONE);
  1000.  
  1001.                     LT_EndGroup(Handle);
  1002.                 }
  1003.  
  1004.                 LT_New(Handle,
  1005.                     LA_Type,        VERTICAL_KIND,
  1006.                     LAGR_SameSize,    TRUE,
  1007.                 TAG_DONE);
  1008.                 {
  1009.                     LT_New(Handle,
  1010.                         LA_Type,        CHECKBOX_KIND,
  1011.                         LA_LabelID,        MSG_PHONEPANEL_AUTO_DIAL_TXT,
  1012.                         LA_ID,            GAD_MAIN_AUTODIAL,
  1013.                         LA_BYTE,        &PhonebookAutoDial,
  1014.                         LA_LabelPlace,    PLACE_RIGHT,
  1015.                     TAG_DONE);
  1016.  
  1017.                     LT_New(Handle,
  1018.                         LA_Type,        CHECKBOX_KIND,
  1019.                         LA_LabelID,        MSG_PHONEPANEL_EXIT_WHEN_FINISHED_TXT,
  1020.                         LA_ID,            GAD_MAIN_EXIT_WHEN_FINISHED,
  1021.                         LA_BYTE,        &PhonebookAutoExit,
  1022.                         GA_Disabled,    !PhonebookAutoDial,
  1023.                         LA_LabelPlace,    PLACE_RIGHT,
  1024.                     TAG_DONE);
  1025.  
  1026.                     LT_New(Handle,
  1027.                         LA_Type,        XBAR_KIND,
  1028.                     TAG_DONE);
  1029.  
  1030.                     LT_New(Handle,
  1031.                         LA_Type,        BUTTON_KIND,
  1032.                         LA_LabelID,        MSG_PHONEBOOK_PASSWORD_TXT,
  1033.                         LA_ID,            GAD_PASSWORD,
  1034.                         LABT_Smaller,    TRUE,
  1035.                     TAG_DONE);
  1036.  
  1037.                     LT_New(Handle,
  1038.                         LA_Type,        XBAR_KIND,
  1039.                     TAG_DONE);
  1040.  
  1041.                     LT_New(Handle,
  1042.                         LA_Type,        BUTTON_KIND,
  1043.                         LA_LabelID,        MSG_PHONEBOOK_LOAD_TXT,
  1044.                         LA_ID,            GAD_LOAD,
  1045.                         GA_Disabled,    ChosenEntry != NULL,
  1046.                         LABT_Smaller,    TRUE,
  1047.                     TAG_DONE);
  1048.  
  1049.                     LT_New(Handle,
  1050.                         LA_Type,        BUTTON_KIND,
  1051.                         LA_LabelID,        MSG_PHONEBOOK_MERGE_TXT,
  1052.                         LA_ID,            GAD_MERGE,
  1053.                         GA_Disabled,    !NumPhoneEntries,
  1054.                         LABT_Smaller,    TRUE,
  1055.                     TAG_DONE);
  1056.  
  1057.                     LT_New(Handle,
  1058.                         LA_Type,        BUTTON_KIND,
  1059.                         LA_LabelID,        MSG_PHONEBOOK_SAVE_TXT,
  1060.                         LA_ID,            GAD_SAVE,
  1061.                         GA_Disabled,    !NumPhoneEntries,
  1062.                         LABT_Smaller,    TRUE,
  1063.                     TAG_DONE);
  1064.  
  1065.                     LT_New(Handle,
  1066.                         LA_Type,        BUTTON_KIND,
  1067.                         LA_LabelID,        MSG_PHONEBOOK_PRINT_TXT,
  1068.                         LA_ID,            GAD_PRINT,
  1069.                         GA_Disabled,    !NumPhoneEntries,
  1070.                         LABT_Smaller,    TRUE,
  1071.                     TAG_DONE);
  1072.  
  1073.                     LT_New(Handle,
  1074.                         LA_Type,        BUTTON_KIND,
  1075.                         LA_LabelID,        MSG_PHONEBOOK_SORT_TXT,
  1076.                         LA_ID,            GAD_SORT,
  1077.                         GA_Disabled,    !NumPhoneEntries,
  1078.                         LABT_Smaller,    TRUE,
  1079.                     TAG_DONE);
  1080.  
  1081.                     LT_New(Handle,
  1082.                         LA_Type,        XBAR_KIND,
  1083.                     TAG_DONE);
  1084.  
  1085.                     LT_New(Handle,
  1086.                         LA_Type,        BUTTON_KIND,
  1087.                         LA_LabelID,        MSG_PHONEBOOK_COPY_CONFIG_TXT,
  1088.                         LA_ID,            GAD_COPY_CONFIG,
  1089.                         LABT_Smaller,    TRUE,
  1090.                         GA_Disabled,    !NumPhoneEntries,
  1091.                     TAG_DONE);
  1092.  
  1093.                     LT_EndGroup(Handle);
  1094.                 }
  1095.  
  1096.                 LT_EndGroup(Handle);
  1097.             }
  1098.  
  1099.             LT_EndGroup(Handle);
  1100.         }
  1101.  
  1102.         if(Parent == Window)
  1103.         {
  1104.             Bounds . Left    = WindowLeft    + Window -> LeftEdge;
  1105.             Bounds . Top    = WindowTop        + Window -> TopEdge;
  1106.             Bounds . Width    = WindowWidth;
  1107.             Bounds . Height    = WindowHeight;
  1108.         }
  1109.  
  1110.         if(LT_Build(Handle,
  1111.             LAWN_TitleText,        WindowTitle ? WindowTitle : LocaleString(MSG_PHONEPANEL_PHONEBOOK_TXT),
  1112.             LAWN_IDCMP,         IDCMP_CLOSEWINDOW,
  1113.             LAWN_Bounds,        &Bounds,
  1114.             LAWN_HelpHook,        &GuideHook,
  1115.             LAWN_Show,            TRUE,
  1116.             LAWN_UserPort,        UserPort,
  1117.             WA_DepthGadget,        TRUE,
  1118.             WA_DragBar,            TRUE,
  1119.             WA_RMBTrap,         TRUE,
  1120.             WA_Activate,        TRUE,
  1121.             WA_CloseGadget,     TRUE,
  1122. //            WA_SimpleRefresh,    TRUE,
  1123.  
  1124.             Parent == Window ? LAWN_Bounds : TAG_IGNORE,&Bounds,
  1125.             Parent == Window ? TAG_IGNORE : LAWN_Parent,Parent,
  1126.         TAG_DONE))
  1127.             return(Handle);
  1128.         else
  1129.             LT_DeleteHandle(Handle);
  1130.     }
  1131.  
  1132.     return(NULL);
  1133. }
  1134.  
  1135. LayoutHandle * __regargs
  1136. CreateSelectorHandle(struct Window *Parent,STRPTR Name,STRPTR Number,STRPTR Comment,BYTE *Mode)
  1137. {
  1138.     LayoutHandle *Handle;
  1139.  
  1140.     if(Handle = LT_CreateHandleTags(Parent -> WScreen,
  1141.         LH_LocaleHook,&LocaleHook,
  1142.     TAG_DONE))
  1143.     {
  1144.         LT_New(Handle,
  1145.             LA_Type,    VERTICAL_KIND,
  1146.         TAG_DONE);
  1147.         {
  1148.             LT_New(Handle,
  1149.                 LA_Type,        VERTICAL_KIND,
  1150.             TAG_DONE);
  1151.             {
  1152.                 LT_New(Handle,
  1153.                     LA_Type,        CYCLE_KIND,
  1154.                     LA_ID,            GAD_SELECT_MODE,
  1155.                     LA_Chars,        40,
  1156.                     LA_BYTE,        Mode,
  1157.                     LACY_TabKey,    TRUE,
  1158.                     LACY_FirstLabel,MSG_PHONEBOOK_TAG_ENTRIES1_TXT,
  1159.                     LACY_LastLabel,    MSG_PHONEBOOK_TAG_ENTRIES2_TXT,
  1160.                 TAG_DONE);
  1161.  
  1162.                 LT_New(Handle,
  1163.                     LA_Type,        STRING_KIND,
  1164.                     LA_ID,            GAD_SELECT_NAME,
  1165.                     LA_LabelID,        MSG_PHONEBOOK_SYSTEM_NAME_TXT,
  1166.                     LA_STRPTR,        Name,
  1167.                     GTST_MaxChars,    63,
  1168.                 TAG_DONE);
  1169.  
  1170.                 LT_New(Handle,
  1171.                     LA_Type,        STRING_KIND,
  1172.                     LA_ID,            GAD_SELECT_COMMENT,
  1173.                     LA_LabelID,        MSG_PHONEBOOK_COMMENT_TXT,
  1174.                     LA_STRPTR,        Comment,
  1175.                     LAST_LastGadget,TRUE,
  1176.                     GTST_MaxChars,    63,
  1177.                 TAG_DONE);
  1178.  
  1179.                 LT_New(Handle,
  1180.                     LA_Type,        STRING_KIND,
  1181.                     LA_ID,            GAD_SELECT_NUMBER,
  1182.                     LA_LabelID,        MSG_PHONEBOOK_NUMBERS_TXT,
  1183.                     LA_STRPTR,        Number,
  1184.                     GTST_MaxChars,    63,
  1185.                 TAG_DONE);
  1186.  
  1187.                 LT_New(Handle,
  1188.                     LA_Type,        XBAR_KIND,
  1189.                     LAXB_FullWidth,    TRUE,
  1190.                 TAG_DONE);
  1191.  
  1192.                 LT_EndGroup(Handle);
  1193.             }
  1194.  
  1195.             LT_New(Handle,
  1196.                 LA_Type,        HORIZONTAL_KIND,
  1197.                 LAGR_SameSize,    TRUE,
  1198.                 LAGR_Spread,    TRUE,
  1199.             TAG_DONE);
  1200.             {
  1201.                 LT_New(Handle,
  1202.                     LA_Type,            BUTTON_KIND,
  1203.                     LA_ID,                GAD_SELECT_APPLY,
  1204.                     LA_LabelID,            MSG_PHONEBOOK_APPLY_TXT,
  1205.                     LABT_ExtraFat,        TRUE,
  1206.                     LABT_ReturnKey,        TRUE,
  1207.                 TAG_DONE);
  1208.  
  1209.                 LT_New(Handle,
  1210.                     LA_Type,            BUTTON_KIND,
  1211.                     LA_ID,                GAD_SELECT_APPLY_AND_CLOSE,
  1212.                     LA_LabelID,            MSG_PHONEBOOK_APPLY_AND_CLOSE_TXT,
  1213.                 TAG_DONE);
  1214.  
  1215.                 LT_New(Handle,
  1216.                     LA_Type,            BUTTON_KIND,
  1217.                     LA_ID,                GAD_SELECT_CLOSE,
  1218.                     LA_LabelID,            MSG_GLOBAL_CLOSE_TXT,
  1219.                     LABT_EscKey,        TRUE,
  1220.                 TAG_DONE);
  1221.  
  1222.                 LT_EndGroup(Handle);
  1223.             }
  1224.  
  1225.             LT_EndGroup(Handle);
  1226.         }
  1227.  
  1228.         if(LT_Build(Handle,
  1229.             LAWN_TitleID,        MSG_PHONEBOOK_EDIT_PATTERNS_TXT,
  1230.             LAWN_IDCMP,         IDCMP_CLOSEWINDOW,
  1231.             LAWN_HelpHook,        &GuideHook,
  1232.             LAWN_Show,            TRUE,
  1233.             LAWN_Parent,        Parent,
  1234.             LAWN_UserPort,        Parent -> UserPort,
  1235.             WA_DepthGadget,        TRUE,
  1236.             WA_DragBar,            TRUE,
  1237.             WA_RMBTrap,         TRUE,
  1238.             WA_Activate,        TRUE,
  1239.             WA_CloseGadget,     TRUE,
  1240.             WA_SimpleRefresh,    TRUE,
  1241.         TAG_DONE))
  1242.             return(Handle);
  1243.         else
  1244.             LT_DeleteHandle(Handle);
  1245.     }
  1246.  
  1247.     return(NULL);
  1248. }
  1249.  
  1250. LayoutHandle * __regargs
  1251. CreateGroupHandle(struct Window *Parent,STRPTR *Labels,ULONG Group)
  1252. {
  1253.     LayoutHandle *Handle;
  1254.  
  1255.     if(Handle = LT_CreateHandleTags(Parent -> WScreen,
  1256.         LH_LocaleHook,&LocaleHook,
  1257.     TAG_DONE))
  1258.     {
  1259.         LT_New(Handle,
  1260.             LA_Type,    VERTICAL_KIND,
  1261.         TAG_DONE);
  1262.         {
  1263.             LT_New(Handle,
  1264.                 LA_Type,        VERTICAL_KIND,
  1265.             TAG_DONE);
  1266.             {
  1267.                 LT_New(Handle,
  1268.                     LA_Type,        CycleType,
  1269.                     LA_ID,            GAD_GROUP_LIST,
  1270.                     GTCY_Labels,    Labels,
  1271.                     GTCY_Active,    Group,
  1272.                     LACY_TabKey,    TRUE,
  1273.                     LA_LabelID,        MSG_PHONEBOOK_PICK_GROUP_TXT,
  1274.                 TAG_DONE);
  1275.  
  1276.                 LT_New(Handle,
  1277.                     LA_Type,        STRING_KIND,
  1278.                     LA_ID,            GAD_GROUP_NAME,
  1279.                     LA_LabelID,        MSG_PHONEBOOK_OR_ENTER_NAME_TXT,
  1280.                     LA_Chars,        30,
  1281.                     GTST_MaxChars,    39,
  1282.                     GTST_String,    Labels[Group],
  1283.                 TAG_DONE);
  1284.  
  1285.                 LT_New(Handle,
  1286.                     LA_Type,        XBAR_KIND,
  1287.                     LAXB_FullWidth,    TRUE,
  1288.                 TAG_DONE);
  1289.  
  1290.                 LT_EndGroup(Handle);
  1291.             }
  1292.  
  1293.             LT_New(Handle,
  1294.                 LA_Type,        HORIZONTAL_KIND,
  1295.                 LAGR_SameSize,    TRUE,
  1296.                 LAGR_Spread,    TRUE,
  1297.             TAG_DONE);
  1298.             {
  1299.                 LT_New(Handle,
  1300.                     LA_Type,            BUTTON_KIND,
  1301.                     LA_ID,                GAD_GROUP_OK,
  1302.                     LA_LabelID,            MSG_GLOBAL_USE_GAD,
  1303.                     LABT_ExtraFat,        TRUE,
  1304.                     LABT_ReturnKey,        TRUE,
  1305.                 TAG_DONE);
  1306.  
  1307.                 LT_New(Handle,
  1308.                     LA_Type,            BUTTON_KIND,
  1309.                     LA_ID,                GAD_GROUP_CANCEL,
  1310.                     LA_LabelID,            MSG_GLOBAL_CANCEL_GAD,
  1311.                     LABT_EscKey,        TRUE,
  1312.                 TAG_DONE);
  1313.  
  1314.                 LT_EndGroup(Handle);
  1315.             }
  1316.  
  1317.             LT_EndGroup(Handle);
  1318.         }
  1319.  
  1320.         if(LT_Build(Handle,
  1321.             LAWN_TitleID,        MSG_PHONEBOOK_SELECT_GROUP_TXT,
  1322.             LAWN_IDCMP,         IDCMP_CLOSEWINDOW,
  1323.             LAWN_HelpHook,        &GuideHook,
  1324.             LAWN_Show,            TRUE,
  1325.             LAWN_Parent,        Parent,
  1326.             LAWN_UserPort,        Parent -> UserPort,
  1327.             WA_DepthGadget,        TRUE,
  1328.             WA_DragBar,            TRUE,
  1329.             WA_RMBTrap,         TRUE,
  1330.             WA_Activate,        TRUE,
  1331.             WA_CloseGadget,     TRUE,
  1332. //            WA_SimpleRefresh,    TRUE,
  1333.         TAG_DONE))
  1334.         {
  1335.             LT_Activate(Handle,GAD_GROUP_NAME);
  1336.  
  1337.             return(Handle);
  1338.         }
  1339.         else
  1340.             LT_DeleteHandle(Handle);
  1341.     }
  1342.  
  1343.     return(NULL);
  1344. }
  1345.  
  1346. LayoutHandle * __regargs
  1347. CreateSortHandle(struct Window *Parent,WORD *Criteria,BOOL *Reverse)
  1348. {
  1349.     LayoutHandle *Handle;
  1350.  
  1351.     if(Handle = LT_CreateHandleTags(Parent -> WScreen,
  1352.         LH_LocaleHook,&LocaleHook,
  1353.     TAG_DONE))
  1354.     {
  1355.         LT_New(Handle,
  1356.             LA_Type,    HORIZONTAL_KIND,
  1357.         TAG_DONE);
  1358.         {
  1359.             LT_New(Handle,
  1360.                 LA_Type,        VERTICAL_KIND,
  1361.             TAG_DONE);
  1362.             {
  1363.                 LT_New(Handle,
  1364.                     LA_Type,        VERTICAL_KIND,
  1365.                 TAG_DONE);
  1366.                 {
  1367.                     LT_New(Handle,
  1368.                         LA_Type,        MX_KIND,
  1369.                         LA_ID,            GAD_SORT_CRITERIA,
  1370.                         LAMX_FirstLabel,MSG_PHONEBOOK_SORTORDER1_TXT,
  1371.                         LAMX_LastLabel,    MSG_PHONEBOOK_SORTORDER4_TXT,
  1372.                         LAMX_TabKey,    TRUE,
  1373.                         LA_WORD,        Criteria,
  1374.                         LA_LabelID,        MSG_SORT_CRITERIA_TXT,
  1375.                     TAG_DONE);
  1376.  
  1377.                     LT_New(Handle,
  1378.                         LA_Type,        XBAR_KIND,
  1379.                     TAG_DONE);
  1380.  
  1381.                     LT_EndGroup(Handle);
  1382.                 }
  1383.  
  1384.                 LT_New(Handle,
  1385.                     LA_Type,        VERTICAL_KIND,
  1386.                 TAG_DONE);
  1387.                 {
  1388.                     LT_New(Handle,
  1389.                         LA_Type,        CHECKBOX_KIND,
  1390.                         LA_ID,            GAD_SORT_REVERSE,
  1391.                         LA_LabelID,        MSG_REVERSE_ORDER_TXT,
  1392.                         LA_BOOL,        Reverse,
  1393.                     TAG_DONE);
  1394.  
  1395.                     LT_EndGroup(Handle);
  1396.                 }
  1397.  
  1398.                 LT_EndGroup(Handle);
  1399.             }
  1400.  
  1401.             LT_New(Handle,
  1402.                 LA_Type,        VERTICAL_KIND,
  1403.             TAG_DONE);
  1404.             {
  1405.                 LT_New(Handle,
  1406.                     LA_Type,        YBAR_KIND,
  1407.                 TAG_DONE);
  1408.  
  1409.                 LT_EndGroup(Handle);
  1410.             }
  1411.  
  1412.             LT_New(Handle,
  1413.                 LA_Type,        VERTICAL_KIND,
  1414.                 LAGR_SameSize,    TRUE,
  1415.                 LAGR_Spread,    TRUE,
  1416.             TAG_DONE);
  1417.             {
  1418.                 LT_New(Handle,
  1419.                     LA_Type,            BUTTON_KIND,
  1420.                     LA_ID,                GAD_SORT_IT,
  1421.                     LA_LabelID,            MSG_JUST_SORT_TXT,
  1422.                     LABT_ReturnKey,        TRUE,
  1423.                 TAG_DONE);
  1424.  
  1425.                 LT_New(Handle,
  1426.                     LA_Type,            BUTTON_KIND,
  1427.                     LA_ID,                GAD_SORT_AND_CLOSE,
  1428.                     LA_LabelID,            MSG_SORT_AND_CLOSE_TXT,
  1429.                 TAG_DONE);
  1430.  
  1431.                 LT_New(Handle,
  1432.                     LA_Type,            BUTTON_KIND,
  1433.                     LA_ID,                GAD_SORT_JUST_CLOSE,
  1434.                     LA_LabelID,            MSG_GLOBAL_CLOSE_TXT,
  1435.                     LABT_EscKey,        TRUE,
  1436.                 TAG_DONE);
  1437.  
  1438.                 LT_EndGroup(Handle);
  1439.             }
  1440.  
  1441.             LT_EndGroup(Handle);
  1442.         }
  1443.  
  1444.         if(LT_Build(Handle,
  1445.             LAWN_TitleID,        MSG_SORT_PHONEBOOK_TXT,
  1446.             LAWN_IDCMP,         IDCMP_CLOSEWINDOW,
  1447.             LAWN_HelpHook,        &GuideHook,
  1448.             LAWN_Show,            TRUE,
  1449.             LAWN_Parent,        Parent,
  1450.             LAWN_UserPort,        Parent -> UserPort,
  1451.             WA_DepthGadget,        TRUE,
  1452.             WA_DragBar,            TRUE,
  1453.             WA_RMBTrap,         TRUE,
  1454.             WA_Activate,        TRUE,
  1455.             WA_CloseGadget,     TRUE,
  1456.             WA_SimpleRefresh,    TRUE,
  1457.         TAG_DONE))
  1458.             return(Handle);
  1459.         else
  1460.             LT_DeleteHandle(Handle);
  1461.     }
  1462.  
  1463.     return(NULL);
  1464. }
  1465.